package com.mrogrape.gui.application;

/**
 * 标记一个动作处理器管理器。
 * 
 * @author Ice Spring
 *
 */
public interface ActionHandlerManager {
	
	/**
	 * 以无模式方式调用一个ActionHandler。
	 * 
	 * <p>
	 * 以此方法会在调用后立即返回。调用的ActionHandler会被加入处理队列等待执行。
	 * 
	 * @param id
	 * @param data
	 */
	public void invokeActionHandler(String id, ActionDataWrapper data);

	/**
	 * 调用一个ActionHandler并指定是否以模式方式运行。
	 * 
	 * <p>
	 * 如果指定Modal为false，等同于{@link #invokeActionHandler(String, ActionDataWrapper)}.
	 * 反之ActionHandler将在当前线程执行并在处理完成后返回。
	 * 
	 * @param id
	 * @param data
	 * @param model
	 */
	public void invokeActionHandler(String id, ActionDataWrapper data, boolean modal);
}
